External DNS
개요
쿠버네티스 외부에서 내가 원하는 도메인을 붙일 수 있도록 도와주는 툴.
클러스터 내부에서는 CoreDNS를 통해 내부에서 사용하는 DNS가 만들어진다.
이것은 내부에서만 사용할 수 있는 것이고, 인터넷 상에서 고유한 것도 아니다.
내가 고유한 도메인을 가지고 있을 때, 이 도메인을 클러스터의 네트워크 리소스에 연결하고자 할 때는 이 툴을 사용하면 된다.
다양한 dns 프로바이더에 대해 설정하는 방법이 나와있다.
클러스터 외부와 통신을 하는 컨트롤러가 설치되기 때문에, 이 친구가 관련한 작업을 할 수 있도록 권한 등의 추가 세팅을 해야 한다.
사용법
kubectl annotate service tetris "external-dns.alpha.kubernetes.io/hostname=tetris.$DOMAIN"
원하는 서비스나 인그레스에 이런 식으로 어노테이션을 달아주면 된다.
컨트롤러는 관련 리소스들을 감시하다 해당 어노테이션을 확인하면 설정된 대로 동작을 실행한다.
external-dns.alpha.kubernetes.io/ttl = 60s
ttl 시간도 설정할 수 있다.
ALB Controller와 사용할 때는 인그레스에 host 부분을 쓰는 것만으로도 레코드가 추가된다.[1]
관련 문서
이름 | noteType | created |
---|---|---|
External DNS | knowledge | 2025-02-26 |
2W - ALB Controller, External DNS | published | 2025-02-15 |